import 'package:get/get.dart';
import '../../../entity/energy_balance.dart';

/// 饮食记录状态管理
class DietRecordState {
  /// 选中的时间段（0:日, 1:周, 2:月）
  RxInt selectedPeriod = 0.obs;

  /// 当前日期文本
  RxString currentDateText = ''.obs;

  /// 能量平衡数据
  Rx<EnergyBalance?> energyBalanceData = Rx<EnergyBalance?>(null);

  /// 总卡路里（从能量平衡数据计算）
  RxDouble totalCalories = 0.0.obs;

  /// 目标卡路里
  RxDouble targetCalories = 1800.0.obs;

  /// 早餐卡路里
  RxDouble breakfastCalories = 0.0.obs;

  /// 午餐卡路里
  RxDouble lunchCalories = 0.0.obs;

  /// 晚餐卡路里
  RxDouble dinnerCalories = 0.0.obs;

  /// 活动消耗卡路里（从能量平衡数据计算）
  RxDouble activityCalories = 0.0.obs;

  /// 能量平衡值
  RxDouble energyBalance = 0.0.obs;

  /// 卡路里进度
  RxDouble calorieProgress = 0.0.obs;

  /// 饮食柱状图数据（来自 queryFoodInfoGet.chartVOList）
  RxList<FoodBarItem> chartItems = <FoodBarItem>[].obs;

  /// 柱状图最大值（根据数据动态调整）
  RxDouble chartMaxY = 0.0.obs;

  /// 是否正在加载
  RxBool isLoading = false.obs;
}

/// 饮食柱状图条目
class FoodBarItem {
  final String mealKey; // 早餐/午餐/晚餐 等
  final String timeLabel; // 例如：11:20
  final double calories; // 数值

  const FoodBarItem({
    required this.mealKey,
    required this.timeLabel,
    required this.calories,
  });
}
